
#ifndef _HTTP_COMM_HTTP_RESPONSE_CUSTORM_H_
#define _HTTP_COMM_HTTP_RESPONSE_CUSTORM_H_

#include <stdint.h>
#include <string>
#include <map>

namespace comm
{
namespace http
{
namespace custorm
{
class CHttpResponse
{
  public:
    CHttpResponse(void);

  public:
	void SetBody(const std::string& sBody);
    void AppendToBody(const std::string& sPart);
    const std::string& GetBody(void) const;

	// following function unimplemented currently. 
	void SetStatusLine(uint32_t dwStatusCode, 
		const std::string& sProtocolVersion, 
		const std::string& sReasonPhrase);
	
    const std::string& GetProtocolVersion(void) const;
    uint32_t GetStatusCode(void) const;
    const std::string& GetReasonPhrase(void) const;
    void AddHeader(const std::string& sName, const std::string& sValue);
    const void GetAllHeader(std::multimap<std::string, std::string>& mmapRespHeaders) const;
    bool HasHeader() const;
	
	void Reset();

  private:
	uint32_t m_dwStatusCode;
	
    std::string m_sBody;
	std::string m_sProtocolVersion;
    std::string m_sReasonPhrase;

	std::multimap<std::string, std::string> m_mmapRespHeaders;
};

}
}
}

#endif // _HTTP_COMM_HTTP_RESPONSE_CUSTORM_H_
